home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.util.Random;
-
- public class PulsingShapesCanvas2 extends Canvas implements Runnable {
- Thread appThread;
- Image osImage;
- Graphics osg;
- Color bkColor;
- Image bkImage;
- Random randomizer;
- int shapeCount;
- // $FF: renamed from: x int[]
- int[] field_0;
- // $FF: renamed from: y int[]
- int[] field_1;
- int[] maxW;
- int[] maxH;
- int[] color;
- int[] currW;
- int[] currH;
- int[] pulseDir;
- int[] shapeType;
- Color[] defaultColors;
- int minWidth;
- int minHeight;
- int maxWidth;
- int maxHeight;
- int maxShapes;
- int minShapes;
-
- public PulsingShapesCanvas2(Applet var1, int var2) {
- this.GetParameters(var1, var2);
- this.defaultColors = new Color[13];
- this.defaultColors[0] = Color.black;
- this.defaultColors[1] = Color.blue;
- this.defaultColors[2] = Color.cyan;
- this.defaultColors[3] = Color.darkGray;
- this.defaultColors[4] = Color.gray;
- this.defaultColors[5] = Color.green;
- this.defaultColors[6] = Color.lightGray;
- this.defaultColors[7] = Color.magenta;
- this.defaultColors[8] = Color.orange;
- this.defaultColors[9] = Color.pink;
- this.defaultColors[10] = Color.red;
- this.defaultColors[11] = Color.white;
- this.defaultColors[12] = Color.yellow;
- }
-
- void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("pulsingShapesBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, (Color)null);
- if (this.bkColor != null) {
- ((Component)this).setBackground(this.bkColor);
- }
-
- var3 = var1.getParameter("pulsingShapesBkImage" + var2);
- this.bkImage = var1.getImage(var1.getCodeBase(), var3);
- var3 = var1.getParameter("pulsingShapesMinWidth" + var2);
- this.minWidth = AppletParam2.GetInt(var3, 10);
- var3 = var1.getParameter("pulsingShapesMinHeight" + var2);
- this.minHeight = AppletParam2.GetInt(var3, 10);
- var3 = var1.getParameter("pulsingShapesMaxWidth" + var2);
- this.maxWidth = AppletParam2.GetInt(var3, 50);
- var3 = var1.getParameter("pulsingShapesMaxHeight" + var2);
- this.maxHeight = AppletParam2.GetInt(var3, 50);
- var3 = var1.getParameter("pulsingShapesMaxShapes" + var2);
- this.maxShapes = AppletParam2.GetInt(var3, 50);
- var3 = var1.getParameter("pulsingShapesMinShapes" + var2);
- this.minShapes = AppletParam2.GetInt(var3, 10);
- }
-
- public void Start() {
- this.appThread = new Thread(this);
- this.appThread.start();
- }
-
- public void Stop() {
- this.appThread.stop();
- this.appThread = null;
- }
-
- public void update(Graphics var1) {
- if (this.osImage == null) {
- this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
- this.osg = this.osImage.getGraphics();
- }
-
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.bkImage != null) {
- int var2 = this.bkImage.getWidth(this);
- int var3 = this.bkImage.getHeight(this);
- int var4 = ((Component)this).size().width / var2;
- int var5 = ((Component)this).size().height / var3;
- ++var4;
- ++var5;
-
- for(int var6 = 0; var6 < var5; ++var6) {
- for(int var7 = 0; var7 < var4; ++var7) {
- this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
- }
- }
- }
-
- for(int var8 = 0; var8 < this.shapeCount; ++var8) {
- this.osg.setColor(this.defaultColors[this.color[var8]]);
- if (this.shapeType[var8] == 0) {
- this.osg.fillRect(this.field_0[var8] - this.currW[var8] / 2, this.field_1[var8] - this.currH[var8] / 2, this.currW[var8], this.currH[var8]);
- } else {
- this.osg.fillOval(this.field_0[var8] - this.currW[var8] / 2, this.field_1[var8] - this.currH[var8] / 2, this.currW[var8], this.currH[var8]);
- }
- }
-
- var1.drawImage(this.osImage, 0, 0, this);
- }
-
- public void run() {
- while(true) {
- try {
- ((Component)this).repaint();
- this.UpdateSizes();
- Thread.sleep(250L);
- } catch (InterruptedException var1) {
- }
- }
- }
-
- void Initialize() {
- this.randomizer = new Random(System.currentTimeMillis());
- this.shapeCount = Math.max(Math.abs(this.randomizer.nextInt()) % this.maxShapes, this.minShapes);
- this.field_0 = new int[this.shapeCount];
- this.field_1 = new int[this.shapeCount];
- this.maxW = new int[this.shapeCount];
- this.maxH = new int[this.shapeCount];
- this.currW = new int[this.shapeCount];
- this.currH = new int[this.shapeCount];
- this.pulseDir = new int[this.shapeCount];
- this.color = new int[this.shapeCount];
- this.shapeType = new int[this.shapeCount];
-
- for(int var1 = 0; var1 < this.shapeCount; ++var1) {
- this.field_0[var1] = Math.max(0, Math.abs(this.randomizer.nextInt()) % ((Component)this).size().width);
- this.field_1[var1] = Math.max(0, Math.abs(this.randomizer.nextInt()) % ((Component)this).size().height);
- this.maxW[var1] = Math.max(this.minWidth, Math.abs(this.randomizer.nextInt()) % this.maxWidth);
- this.maxH[var1] = this.maxW[var1];
- this.currW[var1] = this.maxW[var1];
- this.currH[var1] = this.maxH[var1];
- this.color[var1] = Math.abs(this.randomizer.nextInt()) % 12;
- this.pulseDir[var1] = -1;
- this.shapeType[var1] = Math.abs(this.randomizer.nextInt()) % 2;
- }
-
- }
-
- public Dimension minimumSize() {
- return new Dimension(10, 10);
- }
-
- public Dimension preferredSize() {
- return new Dimension(10, 10);
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.osImage = null;
- this.osg = null;
- this.Initialize();
- }
-
- void UpdateSizes() {
- for(int var1 = 0; var1 < this.shapeCount; ++var1) {
- if (this.currW[var1] >= this.minWidth && this.currH[var1] >= this.minHeight) {
- if (this.currW[var1] <= this.maxWidth && this.currH[var1] <= this.maxHeight) {
- int[] var10000 = this.currW;
- var10000[var1] += this.pulseDir[var1];
- var10000 = this.currH;
- var10000[var1] += this.pulseDir[var1];
- } else {
- this.pulseDir[var1] = -this.pulseDir[var1];
- this.currW[var1] = this.maxWidth;
- this.currH[var1] = this.maxHeight;
- }
- } else {
- this.pulseDir[var1] = -this.pulseDir[var1];
- this.currW[var1] = this.minWidth;
- this.currH[var1] = this.minHeight;
- }
- }
-
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- ((Component)this).repaint();
- return true;
- }
- }
-